Prisma Client
スキーマファイルから自動生成される型安全なクエリビルダ
セットアップ
インストール
code:sh
$ npm i @prisma/client
実行すると、prisma generate も実行される
事前に prisma migrate dev を実行していると、自動的に実行されている
Model のメソッド
findUnique: 対象テーブルから ID やユニーク属性を用いて単一のレコードを取得する関数
レコードが存在しなかった場合は null を返す
例外(NotFoundError)を発生させるには、代わりに findUniqueOrThrow を投げる必要がある
findMany: 対象テーブルから複数レコードを取得する関数
code:ts
const users = await prisma.user.findMany({
select: {
id: true,
name: true,
image: true,
profile: { select: { screenName: true } },
},
});
user のスキーマ定義
code:schema.prisma
model User {
id String @id @default(cuid())
name String?
email String? @unique
emailVerified DateTime?
image String?
profileId String?
profile Profile?
accounts Account[]
sessions Session[]
}
profile ではリレーション先のデータを取得するため、select をネストしている
create: 対象テーブルのレコードを 1 件作成する関数
code:ts
await prisma.task.create({
data: { name, dueDate, description },
});
update: 対象テーブルのレコードを 1 件更新する関数
code:ts
await prisma.task.update({
data: { name, dueDate, status, description },
where: { id },
});
delete: 対象テーブルのレコードを 1 件削除する関数
code:ts
await prisma.task.delete({ where: { id } });